Internet Protocol Security (“IPsec”) and Secure Sockets Layer. (“SSL”) are examples of conventional encryption protocols that are used to establish virtual private networks (“VPNs”) over a public communications network, such as the Internet, to ensure that only authorized users can access data in the VPNs. While functional, traditional VPNs implementing these and other conventional encryption protocols have several drawbacks.
A drawback to implementing IPsec, for example, is that most firewalls cannot effectively route IPsec-encrypted packet traffic with minimal effort, especially those performing network address translation (‘NAT”). Although NAT traversal techniques exist to pass IPsec-encrypted packets through NAT firewalls, these techniques limit IPsec-encrypted packets to a couple of ports (e.g., port 80 and 443), thereby forming bottlenecks. Another drawback is that VPNs implementing IPsec require that an address assigned to a remote computing device be visible by a private network to which that remote device is connected, giving rise to a vulnerability to certain breaches in security. For example, a worm infecting a client in the private network can use the visible address of the remote device to propagate itself into a private network including that remote device. At least some of the drawbacks of IPsec-based VPNs are due to performing both packet inspection and encryption at the network layer, such as at the Ethernet frame-level.
One drawback to implementing SSL, for example, is that this protocol is typically limited to web applications, thereby precluding the use of numerous other applications that are not browser-based. Another drawback is that SSL-based VPNs do support a wide range of routing protocols. Consequently, SSL-based VPNs cannot generally support real-time applications, such as voice over IP, or “VoIP,” and peer-to-peer applications. At least some of the drawbacks of SSL-based VPNs are due to performing both packet inspection and encryption at the transport layer (or the applications layer), which limits routing protocols to, for example, User Data Protocol (“UDP”) and Transmission Control Protocol (“TCP”).
Thus, there is a need for a system, an apparatus and a method to overcome the drawbacks of the above-mentioned implementations of encryption protocols in VPNs, and in particular, to establish a secured communications link from a remote computing device to a private network by capturing and redirecting packet traffic at the remote device and by modifying the packets to at least minimize the latency of encrypted packet traffic for real-time applications.
A system, apparatus and a method for implementing a secured communications link at a layer other than that at which packets are filtered are disclosed. In one embodiment, a computer system is configured to form a virtual private network (“VPN”) and comprises an address inspection driver to identify initial target packet traffic addressed to a target server. Also, the computer system includes a pseudo server module to receive rerouted initial target packet traffic from the address inspection driver. The pseudo server module is configured to convey packet regeneration instructions to a VPN gateway. The address inspection driver functions to identify additional target packet traffic addressed to the target server and routes the additional target packet traffic to the pseudo server. In one embodiment, the pseudo server is configured to strip header information from the additional target packet traffic to form a payload, and thereafter, to route the payload to the target server.
A method is disclosed, according to another embodiment of the present invention, whereby the method secures communications with a remote client computing device by establishing a virtual private network. The method comprises generating packet traffic with a communication application running on a client computing device, identifying at the client computing device target packet traffic of the packet traffic that is addressed to a target server, forming a secure communications link between a pseudo server module on the computing device and the target server, directing additional packet traffic addressed to the target server to the pseudo server module, sending an acknowledgment to the communication application upon receipt of the additional packet traffic rerouted to the pseudo server module, and routing a payload to the target server.
In yet another embodiment, a virtual private network comprises a client machine configured as a pseudo server machine with respect to a communication application running on the client machine. The communication application is configured to receive packet traffic acknowledgements from the pseudo server machine. A virtual private network gateway is included and is operative with a server machine to function as a client machine with respect to the pseudo server machine, thereby facilitating secure communications between the client machine and the server machine.